Skip to content

Conversation

matthiaskrgr
Copy link
Member

Successful merges:

r? @ghost
@rustbot modify labels: rollup

Create a similar rollup

Voultapher and others added 19 commits November 2, 2024 10:53
Also add some other proper files to the trigger list of this label.
Signed-off-by: wangjingcun <[email protected]>
When outputs are used together with labels, they are considered
to be written for all destinations, not only when falling through.
When labels are present, the `noreturn` option really means that asm block
won't fallthrough -- if labels are present, then outputs can still be
meaningfully used.
Fix asm goto with outputs and move it to a separate feature gate

Tracking issue: rust-lang#119364

This PR addresses 3 aspects of asm goto with outputs:
* Codegen is fixed. My initial implementation has an oversight which cause the output to be only stored in fallthrough path, but not in label blocks.
* Outputs can now be used with `options(noreturn)` if a label block is given.
* All of this is moved to a new feature gate, because we likely want to stabilise `asm_goto` before asm goto with outputs.

`@rustbot` labels: +A-inline-assembly +F-asm
…anieu

Support input/output in vector registers of s390x inline assembly (under asm_experimental_reg feature)

This extends currently clobber-only vector registers (`vreg`) support to allow passing `#[repr(simd)]` types, floats (f32/f64/f128), and integers (i32/i64/i128) as input/output.

This is unstable and gated under new `#![feature(asm_experimental_reg)]` (tracking issue: rust-lang#133416). If the feature is not enabled, only clober is supported as before.

| Architecture | Register class | Target feature | Allowed types |
| ------------ | -------------- | -------------- | -------------- |
| s390x | `vreg` | `vector` | `i32`, `f32`, `i64`, `f64`, `i128`, `f128`, `i8x16`, `i16x8`, `i32x4`, `i64x2`, `f32x4`, `f64x2` |

This matches the list of types that are supported by the vector registers in LLVM:
https://github.com/llvm/llvm-project/blob/llvmorg-19.1.0/llvm/lib/Target/SystemZ/SystemZRegisterInfo.td#L301-L313

In addition to `core::simd` types and floats listed above, custom `#[repr(simd)]` types of the same size and type are also allowed. All allowed types other than i32/f32/i64/f64/i128, and relevant target features are currently unstable.

Currently there is no SIMD type for s390x in `core::arch`, but this is tracked in rust-lang#130869.

cc rust-lang#130869 about vector facility support in s390x
cc rust-lang#125398 & rust-lang#116909 about f128 support in asm

`@rustbot` label +O-SystemZ +A-inline-assembly
…=Mark-Simulacrum

Add a test to verify that libstd doesn't use protected symbols
…in-config-toml-example, r=Mark-Simulacrum

Document possibility to set core features in example config.toml
…-of-trigger-file-LICENSES, r=Mark-Simulacrum

ci(triagebot): add more top-level files to A-meta

It didn't exist so I changed it with its new versions: `COPYRIGHT`, `LICENSE-APACHE` and `LICENSE-MIT`

I also added some other files I found appropriate under the related label.
Add BorrowedBuf::into_filled{,_mut} methods to allow returning buffer with original lifetime

See rust-lang/libs-team#473 and tracking issue rust-lang#117693.
…methods, r=Mark-Simulacrum

alloc: fix `Allocator` method names in `alloc` free function docs

It looks like these got renamed in rust-lang@9274b37 but the docs never updated.

I couldn't find any history for `Allocator::realloc`.  The `grow` API is not 1:1 (e.g., it returns a result), so this may not be the correct change - let me know and I can change the method or even remove this entirely.
@rustbot rustbot added A-meta Area: Issues & PRs about the rust-lang/rust repository itself A-run-make Area: port run-make Makefiles to rmake.rs S-waiting-on-review Status: Awaiting review from the assignee but also interested parties. T-bootstrap Relevant to the bootstrap subteam: Rust's build system (x.py and src/bootstrap) T-compiler Relevant to the compiler team, which will review and decide on the PR/issue. T-libs Relevant to the library team, which will review and decide on the PR/issue. rollup A PR which is a rollup labels Nov 25, 2024
@matthiaskrgr
Copy link
Member Author

@bors r+ rollup=never p=8

@bors
Copy link
Collaborator

bors commented Nov 25, 2024

📌 Commit d2590e0 has been approved by matthiaskrgr

It is now in the queue for this repository.

@bors bors added S-waiting-on-bors Status: Waiting on bors to run and complete tests. Bors will change the label on completion. and removed S-waiting-on-review Status: Awaiting review from the assignee but also interested parties. labels Nov 25, 2024
@bors
Copy link
Collaborator

bors commented Nov 25, 2024

⌛ Testing commit d2590e0 with merge 1278dad...

@bors
Copy link
Collaborator

bors commented Nov 25, 2024

☀️ Test successful - checks-actions
Approved by: matthiaskrgr
Pushing 1278dad to master...

@bors bors added the merged-by-bors This PR was explicitly merged by bors. label Nov 25, 2024
@bors bors merged commit 1278dad into rust-lang:master Nov 25, 2024
7 checks passed
@rustbot rustbot added this to the 1.85.0 milestone Nov 25, 2024
@rust-timer
Copy link
Collaborator

📌 Perf builds for each rolled up PR:

PR# Message Perf Build Sha
#131523 Fix asm goto with outputs and move it to a separate feature… 27a605224cd1010b28c21fea34f2269e99fd2d06 (link)
#131664 Support input/output in vector registers of s390x inline as… ba23619f782d8f86ca1cf056d59117954ac198b1 (link)
#132432 Add a test to verify that libstd doesn't use protected symb… ddcad2678b72f02309210a76b45cbc66897dc0d9 (link)
#132502 Document possibility to set core features in example config… 3b19d575b6c1f16ed70545a984404064afd0dca9 (link)
#132529 ci(triagebot): add more top-level files to A-meta 74d12f824290bf14afe0fe366708655c6f8db39d (link)
#132533 Add BorrowedBuf::into_filled{,_mut} methods to allow return… 039c07d8af158f3f3e08206a12c942541367e622 (link)
#132803 Fix broken url b46a42a10668282f4f25f015a27f6ab212c85b23 (link)
#132982 alloc: fix Allocator method names in alloc free functio… ddb3d7e52155b395491832f49a32f327f4f2009e (link)

previous master: 67a8c64259

In the case of a perf regression, run the following command for each PR you suspect might be the cause: @rust-timer build $SHA

@rust-timer
Copy link
Collaborator

Finished benchmarking commit (1278dad): comparison URL.

Overall result: ❌ regressions - no action needed

@rustbot label: -perf-regression

Instruction count

This is the most reliable metric that we have; it was used to determine the overall result at the top of this comment. However, even this metric can sometimes exhibit noise.

mean range count
Regressions ❌
(primary)
- - 0
Regressions ❌
(secondary)
0.2% [0.2%, 0.2%] 1
Improvements ✅
(primary)
- - 0
Improvements ✅
(secondary)
- - 0
All ❌✅ (primary) - - 0

Max RSS (memory usage)

Results (secondary 1.0%)

This is a less reliable metric that may be of interest but was not used to determine the overall result at the top of this comment.

mean range count
Regressions ❌
(primary)
- - 0
Regressions ❌
(secondary)
2.5% [2.3%, 2.6%] 4
Improvements ✅
(primary)
- - 0
Improvements ✅
(secondary)
-4.9% [-4.9%, -4.9%] 1
All ❌✅ (primary) - - 0

Cycles

Results (primary -2.5%)

This is a less reliable metric that may be of interest but was not used to determine the overall result at the top of this comment.

mean range count
Regressions ❌
(primary)
- - 0
Regressions ❌
(secondary)
- - 0
Improvements ✅
(primary)
-2.5% [-2.5%, -2.5%] 1
Improvements ✅
(secondary)
- - 0
All ❌✅ (primary) -2.5% [-2.5%, -2.5%] 1

Binary size

This benchmark run did not return any relevant results for this metric.

Bootstrap: 795.632s -> 797.447s (0.23%)
Artifact size: 336.27 MiB -> 336.31 MiB (0.01%)

@matthiaskrgr matthiaskrgr deleted the rollup-lfa3wp1 branch January 25, 2025 09:13
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
A-meta Area: Issues & PRs about the rust-lang/rust repository itself A-run-make Area: port run-make Makefiles to rmake.rs merged-by-bors This PR was explicitly merged by bors. rollup A PR which is a rollup S-waiting-on-bors Status: Waiting on bors to run and complete tests. Bors will change the label on completion. T-bootstrap Relevant to the bootstrap subteam: Rust's build system (x.py and src/bootstrap) T-compiler Relevant to the compiler team, which will review and decide on the PR/issue. T-libs Relevant to the library team, which will review and decide on the PR/issue.
Projects
None yet
Development

Successfully merging this pull request may close these issues.